package com.quxiu.system.service;

import java.util.List;
import com.quxiu.system.domain.MagicEntity;
import com.quxiu.system.domain.MagicEntityMeta;

/**
 * 数据实体Service接口
 *
 * @author quxiu
 * @date 2024-06-04
 */
public interface IMagicEntityService {
    /**
     * 查询数据实体
     *
     * @param entityId 数据实体主键
     * @return 数据实体
     */
    public MagicEntity selectMagicEntityByEntityId(Long entityId);

    /**
     * 查询数据实体列表
     *
     * @param magicEntity 数据实体
     * @return 数据实体集合
     */
    public List<MagicEntity> selectMagicEntityList(MagicEntity magicEntity);

    /**
     * 新增数据实体
     *
     * @param magicEntity 数据实体
     * @return 结果
     */
    public int insertMagicEntity(MagicEntity magicEntity);

    /**
     * 修改数据实体
     *
     * @param magicEntity 数据实体
     * @return 结果
     */
    public int updateMagicEntity(MagicEntity magicEntity);

    /**
     * 验证实体名称是否唯一
     * @param magicEntity 实体
     * @return
     */
    boolean checkEntityNameUnique(MagicEntity magicEntity);

    /**
     * 验证实体标题是否唯一
     * @param magicEntity 实体
     * @return
     */
    boolean checkEntityTitleUnique(MagicEntity magicEntity);

    /**
     * 批量删除数据实体
     *
     * @param entityIds 需要删除的数据实体主键集合
     * @return 结果
     */
    public int deleteMagicEntityByEntityIds(Long[] entityIds);

    /**
     * 删除数据实体信息
     *
     * @param entityId 数据实体主键
     * @return 结果
     */
    public int deleteMagicEntityByEntityId(Long entityId);

    /**
     * 修改数据实体字段
     * @param userId
     * @param entityId
     * @param fields
     */
    void updateFields(Long userId, Long entityId, List<MagicEntityMeta> fields);
}
